How to put data from List<string []> to dataGridView

Posted by Kirill on Stack Overflow See other posts from Stack Overflow or by Kirill
Published on 2013-10-19T21:49:51Z Indexed on 2013/10/19 21:54 UTC
Read the original article Hit count: 172

Filed under:
|
|
|
|

Try to put some data from List to dataGridView, but have some problem with it.

Currently have method, that return me required List - please see picture below

code

    public List<string[]> ReadFromFileBooks()
    {
        List<string> myIdCollection = new List<string>();
        List<string[]> resultColl = new List<string[]>();
        if (chooise == "all")
        {
            if (File.Exists(filePath))
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {                        
                    StreamReader sr = new StreamReader(fs);
                    string[] line = sr.ReadToEnd().Split(new string[] { Environment.NewLine },
                        StringSplitOptions.RemoveEmptyEntries);
                    foreach (string l in line)
                    {
                        string[] result = l.Split(',');
                        foreach (string element in result)
                        {
                            myIdCollection.Add(element);
                        }
                        resultColl.Add(new string[] { myIdCollection[0], myIdCollection[1], myIdCollection[2], myIdCollection[3] });
                        myIdCollection.Clear();
                    }
                    sr.Close();
                    return resultColl;
                }
            }
     ....

this return to me required data in requred form (like list from arrays). enter image description here

After this, try to move it to the dataGridView, that already have 4 columns with names (because i'm sure, that no than 4 colums required) - please see pic below

enter image description here

Try to put data in to dataGridView using next code

    private void radioButtonViewAll_CheckedChanged(object sender, EventArgs e)
    {
        TxtLibrary myList = new TxtLibrary(filePathBooks);
        myList.chooise = "all";
        //myList.ReadFromFileBooks();
        DataTable table = new DataTable();
        foreach (var array in myList.ReadFromFileBooks())
        {
            table.Rows.Add(array);
        }
        dataGridViewLibrary.DataSource = table;
    }

But as result got error - "required more rows that exist in dataGridVIew", but accordint to what I'm see (pic above) q-ty of rows (4) equal q-ty of arrays element in List (4).

Try to check result by putting additional temp variables - but it's ok - please see pic below

enter image description here

Where I'm wrong? Maybe i use dataGridView not in correct way?

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET